home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / util / cdity / ModeProSrc.lha / Prefs / MPPNodes.c < prev    next >
C/C++ Source or Header  |  1998-04-12  |  1KB  |  58 lines

  1. #include "MPP.h"
  2.  
  3. extern struct List ForcedEditList;
  4. extern struct MPMessage *ForcedEditMsg;
  5.  
  6.  
  7. extern struct MPSem *MPSem;
  8. extern LONG LVActive, NodeCnt;
  9. extern UWORD CurrentList;
  10.  
  11. struct DefaultNode *GetActiveNode(void)
  12. {
  13.   struct Node *n;
  14.   ULONG active;
  15.   
  16.   if(ForcedEditMsg)
  17.   {
  18.     n=(struct Node *)ForcedEditMsg->Data;
  19.   }
  20.   else
  21.   {
  22.     active=LVActive;
  23.     if(IsListEmpty(&MPSem->PromotionList[CurrentList]))
  24.       n=NULL;
  25.     else
  26.     {
  27.       n=MPSem->PromotionList[CurrentList].lh_Head;
  28.       while(active>0 && n->ln_Succ)
  29.       {
  30.         n=n->ln_Succ;
  31.         active--;
  32.       }
  33.       if(!n->ln_Succ)
  34.       {
  35.         LVActive=0;
  36.         n=MPSem->PromotionList[CurrentList].lh_Head;
  37.       }
  38.     }  
  39.   }
  40.   return((struct DefaultNode *)n);
  41. }
  42.  
  43. LONG CountNodes(struct List *List)
  44. {
  45.   struct Node *n;
  46.   LONG nodecnt=0;
  47.  
  48.   //NodeCnt=0;
  49.   //n=(struct DefaultNode *)(MPSem->PromotionList[CurrentList].lh_Head);
  50.   n=List->lh_Head;
  51.   while(n->ln_Succ)
  52.   {
  53.     n=n->ln_Succ;
  54.     nodecnt++;
  55.   }
  56.   return(nodecnt);
  57. }
  58.